﻿using System;
using System.Web;
using System.Web.Profile;
using System.Web.Security;
using StudioOneAPI.Data.Objects;

namespace KioskViewer
{
    public class SessionProfile : ProfileBase
    {

        public static SessionProfile GetProfile(string username)
        {
            return Create(username) as SessionProfile;
        }

        public static SessionProfile GetProfile()
        {
            return Create(HttpContext.Current.Profile.UserName) as SessionProfile;
        }

        [SettingsAllowAnonymous(true)]
        public StudioOneAPI.Data.Objects.Session StudioSession
        {
            get { return base["StudioSession"] as StudioOneAPI.Data.Objects.Session; }
            set { base["StudioSession"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public string PromoCode
        {
            get { return base["PromoCode"] as string; }
            set { base["PromoCode"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public bool HasPromoCard
        {
            get { return (bool)base["HasPromoCard"]; }
            set { base["HasPromoCard"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public string GiftCode
        {
            get { return base["GiftCode"] as string; }
            set { base["GiftCode"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public bool HasGiftCard
        {
            get { return (bool)base["HasGiftCard"]; }
            set { base["HasGiftCard"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public string MasterCode
        {
            get { return base["MasterCode"] as string; }
            set { base["MasterCode"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public string SessionCard
        {
            get { return base["SessionCard"] as string; }
            set { base["SessionCard"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public bool UsedMasterActivationCard
        {
            get { return (bool)base["UsedMasterActivationCard"]; }
            set { base["UsedMasterActivationCard"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public bool PurchasedOnline
        {
            get { return (bool)base["PurchasedOnline"]; }
            set { base["PurchasedOnline"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public bool MusicSession
        {
            get { return (bool)base["MusicSession"]; }
            set { base["MusicSession"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public int StudioId
        {
            get { return (int)base["StudioId"]; }
            set { base["StudioId"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public int KioskViewerNumber
        {
            get { return (int)base["KioskViewerNumber"]; }
            set { base["KioskViewerNumber"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public int VocalType
        {
            get { return (int)base["VocalType"]; }
            set { base["VocalType"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public bool TurnMicOn
        {
            get { return (bool)base["TurnMicOn"]; }
            set { base["TurnMicOn"] = value; }
        }
        [SettingsAllowAnonymous(true)]
        public bool PurchaseGiftCard
        {
            get { return (bool)base["PurchaseGiftCard"]; }
            set { base["PurchaseGiftCard"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public bool PurchasePromoCard
        {
            get { return (bool)base["PurchasePromoCard"]; }
            set { base["PurchasePromoCard"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public string PromoPrefix
        {
            get { return (string)base["PromoPrefix"]; }
            set { base["PromoPrefix"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public string PromoTemplate
        {
            get { return (string)base["PromoTemplate"]; }
            set { base["PromoTemplate"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public string PromoTitle
        {
            get { return (string)base["PromoTitle"]; }
            set { base["PromoTitle"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public string CreateSessionStartTime
        {
            get { return (string)base["CreateSessionStartTime"]; }
            set { base["CreateSessionStartTime"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public bool UseCustomGenre
        {
            get { return (bool)base["UseCustomGenre"]; }
            set { base["UseCustomGenre"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public int CustomGenreId
        {
            get { return (int)base["CustomGenreId"]; }
            set { base["CustomGenreId"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        public int PromoTypeId
        {
            get { return (int)base["PromoTypeId"]; }
            set { base["PromoTypeId"] = value; }
        }

    }
}
